<?php
class VentasController extends AppController {
	var $name = 'Ventas';
	var $uses = array('Venta','Tienda','Vendedore','Detalle','Producto');

	function detalle_vendedor(){
		$this->layout = "layout_vendedor";
		
		$id = $this->params["url"]['id'];
		$venta = $this->Venta->findById($id);	
		$this->set('venta',$venta);	
		$tiendas = $this->Tienda->find("all");
		$this->set('tiendas',$tiendas);	
		$productos = $this->Producto->find("all");
		$this->set('productos',$productos);	
		
		$conditions['Detalle.ventas_id'] = $id;
		$detalles = $this->Detalle->find("all",array("conditions"=>$conditions));
		$this->set('detalles',$detalles);
	}

	function listar_vendedor(){
		$this->layout = "layout_vendedor";
		
		$usuario = $this->Session->read('Usuario');
		$vendedor = $this->Vendedore->findByUsuariosId($usuario['id']);
		$conditions['Venta.vendedores_id'] = $vendedor['Vendedore']['id'];
		$ventas = $this->Venta->find("all",array("conditions"=>$conditions));
		$tiendas = $this->Tienda->find("all");
		
		$this->set('tiendas',$tiendas);
		$this->set('vendedor',$vendedor);
		$this->set('ventas',$ventas);
	}

	function guardarCompra(){
		$this->layout = "layout_vendedor";
		
		if(!empty($this->data)){
			$dataVenta = $this->data;
			$venta =  $this->Venta->findById($dataVenta['Venta']['id']);			
			$conditions['Detalle.ventas_id'] = $dataVenta['Venta']['id'];
			$detalles = $this->Detalle->find("all",array("conditions"=>$conditions));
			$this->set('detalles',$detalles);
			$productos = $this->Producto->find("all");
			$totalVenta = 0;
			$totalProducto = 0;
			
			//Calcular el total y la utilidad
			foreach ($detalles as $d) {
				$totalVenta = $totalVenta + $d["Detalle"]["monto"];
				
				foreach ($productos as $p) {
					if($p["Producto"]["id"]== $d["Detalle"]["productos_id"]){
						$totalProducto = $totalProducto+$p["Producto"]["costo"]*$d["Detalle"]["cantidad"];
					}
				}
			}
			$venta["Venta"]["estado"]   = $dataVenta["Venta"]["estado"];
			$venta["Venta"]["adelanto"] = $dataVenta["Venta"]["adelanto"];
			$venta["Venta"]["utilidad"] = $totalVenta-$totalProducto;
			$venta["Venta"]["total"] = $totalVenta;
			
			if($this->Venta->save($venta["Venta"])){
				$this->Session->setFlash('Se ha registrado la compra'.$totalProducto.'-'.$totalVenta,'success');
				$this->redirect(array('controller'=>'Ventas','action'=>'registrar'));
			}else{
				$this->Session->setFlash('No se pudo registrar la  venta. Inténtelo nuevamente','notice');
				$this->redirect(array('controller'=>'Ventas','action'=>'registrar'),null,true);
			}
		}
	}

	function agregarproducto(){
		$this->layout = "layout_vendedor";
		
		if(!empty($this->data)){				
			$this->Detalle->create();
			$dataDetalle = $this->data;
			$producto =  $this->Producto->findByCodigo($dataDetalle['Producto']['codigo']);
			$detalle['Detalle']['productos_id']=$producto['Producto']['id'];
			$detalle['Detalle']['cantidad'] = $dataDetalle['Detalle']['cantidad'];
			$detalle['Detalle']['monto'] = $dataDetalle['Detalle']['monto'];
			$detalle['Detalle']['ventas_id'] = $dataDetalle['Detalle']['ventas_id'];
			$idVenta=$dataDetalle['Detalle']['ventas_id'];
			
			if($this->Detalle->save($detalle["Detalle"])){
				$this->redirect(array('controller'=>'Ventas','action'=>'registrarDetalle?id='.$idVenta));
			}else{
				$this->Session->setFlash('No se pudo registrar la venta. Inténtelo nuevamente','notice');
				$this->redirect(array('controller'=>'Ventas','action'=>'registrar'),null,true);
			}
		}
	}

	function registrarDetalle(){
		$this->layout = "layout_vendedor";
		
		$id = $this->params["url"]['id'];
		$venta = $this->Venta->findById($id);	
		$this->set('venta',$venta);	
		$tiendas = $this->Tienda->find("all");
		$this->set('tiendas',$tiendas);	
		$productos = $this->Producto->find("all");
		$this->set('productos',$productos);	
		
		$conditions['Detalle.ventas_id'] = $id;
		$detalles = $this->Detalle->find("all",array("conditions"=>$conditions));
		$this->set('detalles',$detalles);
	}	

	function detalle(){
		
		$usuario = $this->Session->read('Usuario');
		
		if($usuario['rol']==1){		
			$this->layout = "layout_admin";
		}else {
			$this->layout = "layout_vendedor";	
		}
		
		$id = $this->params["url"]['id'];
		$v = $this->Venta->findById($id);
		$this->set('v',$v);
		
		$conditions['Detalle.ventas_id'] = $id;
		$detalles = $this->Detalle->find("all",array("conditions"=>$conditions));
		$this->set('detalles',$detalles);
		
		$productos = $this->Producto->find("all");
		$this->set('productos',$productos);
		
		$tiendas = $this->Tienda->find("all");
		$this->set('tiendas',$tiendas);
		
		$vendedores = $this->Vendedore->find("all");
		$this->set('vendedores',$vendedores);
	}

	function registrar(){
		$this->layout = "layout_vendedor";
		
		if(!empty($this->data)){				
			$this->Venta->create();
			$dataVenta = $this->data;
			$usuario = $this->Session->read('Usuario');
			$vendedor = $this->Vendedore->findByUsuariosId($usuario['id']);
			$dataVenta["Venta"]["vendedores_id"] = $vendedor['Vendedore']['id'];

			if($this->Venta->save($dataVenta["Venta"])){
				$idVenta = $this->Venta->id;				
		        //$this->Session->setFlash('se registro'.$venta["Venta"]["id"]);
				$this->redirect(array('controller'=>'Ventas','action'=>'registrarDetalle?id='.$idVenta));
			}else{
				$this->Session->setFlash('No se pudo registrar la  venta. Inténtelo nuevamente','notice');
				$this->redirect(array('controller'=>'Ventas','action'=>'registrar'),null,true);
			}
		}else{
			$tiendas = $this->Tienda->find("all");
			$this->set('tiendas',$tiendas);		
		}
	}

	function listar(){
		$this->layout = "layout_admin";

		$ventas = $this->Venta->find("all");
		$tiendas = $this->Tienda->find("all");
		$vendedores = $this->Vendedore->find("all");
		$this->set('tiendas',$tiendas);
		$this->set('vendedores',$vendedores);
		$this->set('ventas',$ventas);
	}
	
	function borrar_detalle(){
		$id = $this->params["url"]['idDetalle'];
		$idVenta = $this->params["url"]['id'];

		if($this->Detalle->delete($id)){
			$this->Session->setFlash('Se eliminó el detalle de venta con exito','success');
			$this->redirect(array('controller'=>'Ventas','action'=>'registrarDetalle?id='.$idVenta),null,true);
		}else{
			$this->Session->setFlash('No se pudo eliminar el producto. Inténtelo nuevamente','notice');
			$this->redirect(array('controller'=>'Ventas','action'=>'registrarDetalle?id='.$idVenta),null,true);
		}
	}
}

?>